[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
Int 21 Fn 4402 - Network Driver Interface Specification (ndis) 2.0.1 - P [N]
AX = 4402h
BX = file handle for device "PROTMAN$"
CX = 000Eh (size of request block)
DS:DX -> request block (see below)
Return: CF clear if successful
AX = number of bytes actually read
CF set on error
AX = error code (01h,05h,06h,0Dh) (see AH=59h)
See Also: AX=4402h"FTPSOFT"
Format of request block for GetProtocolManagerInfo:
Offset Size Description
00h WORD 01h
02h WORD returned status (see below)
04h DWORD returned pointer to structure representing parsed user config
08h DWORD unused
0Ch WORD returned BCD version of NDIS on which Protocol Manager is based
Format of request block for RegisterModule:
Offset Size Description
00h WORD 02h
02h WORD returned status (see below)
04h DWORD pointer to module's common characteristics table (see below)
08h DWORD pointer to list of modules to which the module is to be bound
0Ch WORD unused
Format of request block for BindAndStart:
Offset Size Description
00h WORD 03h
02h WORD returned status (see below)
04h DWORD caller's virtual address in FailingModules structure
08h DWORD unused
0Ch WORD unused
Format of request block for GetProtocolManagerLinkage:
Offset Size Description
00h WORD 04h
02h WORD returned status (see below)
04h DWORD returned dispatch point
08h DWORD unused
0Ch WORD returned protocol manager DS
Note: the dispatch point may be called as follows instead of using this IOCTL
STACK: WORD protocol manager DS
DWORD pointer to request block
Return: AX = returned status
STACK popped
Format of request block for GetProtocolIniPath:
Offset Size Description
00h WORD 05h
02h WORD returned status (see below)
04h DWORD pointer to a buffer for the ASCIZ pathname of PROTOCOL.INI
08h DWORD unused
0Ch WORD buffer length
Format of request block for RegisterProtocolManagerInfo:
Offset Size Description
00h WORD 06h
02h WORD returned status (see below)
04h DWORD pointer to structure containing parsed user config file
08h DWORD unused
0Ch WORD length of structure
Format of request block for InitAndRegister:
Offset Size Description
00h WORD 07h
02h WORD returned status (see below)
04h DWORD unused
08h DWORD poitner to ASCIZ name of the module to be prebind initialized
0Ch WORD unused
Format of request block for UnbindAndStop:
Offset Size Description
00h WORD 08h
02h WORD returned status (see below)
04h DWORD failing modules as for BindAndStart
08h DWORD if not 0000h:0000h, pointer to ASCIZ name of module to unbind
if 0000h:0000h, terminate a set of previously dynamically
bound protocol modules
0Ch WORD unused
Format of request block for BindStatus:
Offset Size Description
00h WORD 09h
02h WORD returned status (see below)
04h DWORD must be 0000h:0000h
on return, points to root tree
08h DWORD 0000h:0000h
0Ch WORD unused under DOS
Format of request block for RegisterStatus:
Offset Size Description
00h WORD 0Ah
02h WORD returned status (0000h, 0008h, 002Ch) (see below)
04h DWORD 0000h:0000h
08h DWORD pointer to 16-byte ASCIZ module name
0Ch WORD 0000h
Note: not supported by the 10NET v5.0 PROTMAN$ driver
Values for status code:
0000h success
0001h wait for release--protocol has retained control of the data buffer
0002h request queued
0003h frame not recognized
0004h frame rejected
0005h frame should be forwarded
0006h out of resource
0007h invalid parameter
0008h invalid function
0009h not supported
000Ah hardware error
000Bh transmit error
000Ch unrecognized destination
000Dh buffer too small
0020h already started
0021h binding incomplete
0022h driver not initialized
0023h hardware not found
0024h hardware failure
0025h configuration failure
0026h interrupt conflict
0027h MAC incompatible
0028h initialization failed
0029h no binding
002Ah network may be disconnected
002Bh incompatible OS version
002Ch already registered
002Dh path not found
002Eh insufficient memory
002Fh info not found
00FFh general failure
F000h-FFFFh reserved for vendor-specific codes, treated as general failure
Format of common characteristics table:
Offset Size Description
00h WORD size of table in bytes
02h BYTE NDIS major version
03h BYTE NDIS minor version
04h WORD reserved
06h BYTE module major version
07h BYTE module minor version
08h DWORD module function flag bits
bit 0: binding at upper boundary supported
bit 1: binding at lower boundary supported
bit 2: dynamically bound
bits 3-31 reserved, must be 0
0Ch 16 BYTEs ASCIZ module name
1Ch BYTE upper boundary protocol level (see below)
1Dh BYTE upper boundary interface type
for MACs: 1 = MAC
for data links and transports: to be defined
for session: 1 = NCB
any level: 0 = private (ISV-defined)
1Eh BYTE lower boundary protocol level (see below)
1Fh BYTE lower boundary interface type
same as offset 1Dh
20h WORD module ID filled in by protocol manager
22h WORD module DS
24h DWORD system request entry point
28h DWORD pointer to service-specific characteristics
0000h:0000h if none
2Ch DWORD pointer to service-specific status, or 0000h:0000h if none
30h DWORD pointer to upper dispatch table (see below)
0000h:0000h if none
34h DWORD pointer to lower dispatch table (see below)
0000h:0000h if none
38h 2 DWORDs reserved, must be 0
Note: for compatibility with NDIS 1.x.x, a major version of 00h is
interpreted as 01h
Values for boundary protocol level:
00h physical
01h Media Access Control
02h Data link
03h network
04h transport
05h session
FFh not specified
Format of dispatch table:
Offset Size Description
00h DWORD -> common characteristics table (see above)
04h 4 BYTEs ???
08h DWORD -> ??? function (called with 12 bytes of stack arguments)
0Ch DWORD -> ??? function (called with 10 bytes of stack arguments)
10h DWORD -> ??? function (called with 16 bytes of stack arguments)
14h DWORD -> ??? function (called with 4 bytes of stack arguments)
18h DWORD -> ??? function (called with 18 bytes of stack arguments)
1Ch DWORD -> ??? function (called with 12 bytes of stack arguments)
Format of MAC Service-Specific Characteristics Table:
Offset Size Description
00h WORD length of table in bytes
02h 16 BYTEs ASCIZ MAC type name, "802.3", "802.4", "802.5", "802.6", "DIX",
"DIX+802.3", "APPLETALK", "ARCNET", "FDDI", "SDLC", "BSC",
"HDLC", or "ISDN"
12h WORD length of station addresses in bytes
14h 16 BYTEs permanent station address
24h 16 BYTEs current station address
34h DWORD current functional adapter address (00000000h if none)
38h DWORD pointer to multicast address list
3Ch DWORD link speed in bits/sec
40h DWORD service flags (see below)
44h WORD maximum frame size which may be both sent and received
46h DWORD total transmit buffer capacity in bytes
4Ah WORD transmit buffer allocation block size in bytes
4Ch DWORD total receive buffer capacity in bytes
50h WORD receive buffer allocation block size in bytes
52h 3 BYTEs IEEE vendor code
55h BYTE vendor adapter code
56h DWORD pointer to ASCIZ vendor adapter description
5Ah WORD IRQ used by adapter
5Ch WORD transmit queue depth
5Eh WORD maximum supported number of data blocks in buffer descriptors
60h N BYTEs vendor-specific info
Bitfields for service flags:
bit 0 supports broadcast
bit 1 supports multicast
bit 2 supports functional/group addressing
bit 3 supports promiscuous mode
bit 4 station address software settable
bit 5 statistics always current
bit 6 supports InitiateDiagnostics
bit 7 supports loopback
bit 8 MAC does primarily ReceiveChain indications instead of ReceiveLookahead
indications
bit 9 supports IBM source routing
bit 10 supports MAC reset
bit 11 supports Open/Close adapter
bit 12 supports interrupt request
bit 13 supports source routing bridge
bit 14 supports GDT virtual addresses (OS/2 version)
bit 15 multiple TransferDatas allowed durign a single indication
bit 16 MAC normally sets FrameSize = 0 in ReceiveLookahead
bit 17-31 reserved, must be 0
Format of NetBIOS Service-Specific Characteristics Table
Offset Size Description
00h WORD length of table in bytes
02h 16 BYTEs ASCIZ type name of NetBIOS module
12h WORD NetBIOS module code
14h N BYTEs vendor-specific info
Format of MAC Service-Specific Status Table:
Offset Size Description
00h WORD length of table in bytes
02h DWORD seconds since 0:00 1/1/70 when diagnostics last run
(FFFFFFFFh = never)
06h DWORD MAC status bits (see below)
0Ah WORD current packet filter flags
bit 0: directed/multicast or group/functional
bit 1: broadcast
bit 2: promiscuous
bit 3: all source routing
bits 4-15: reserved, must be zero
0Ch DWORD pointer to media-specific status table or 0000h:0000h
10h DWORD seconds past 0:00 1/1/70 of last ClearStatistics
14h DWORD total frames received (FFFFFFFFh = not counted)
18h DWORD frames with CRC error (FFFFFFFFh = not counted)
1Ch DWORD total bytes received (FFFFFFFFh = not counted)
20h DWORD frames discarded--no buffer space (FFFFFFFFh = not counted)
24h DWORD multicast frames received (FFFFFFFFh = not counted)
28h DWORD broadcast frames received (FFFFFFFFh = not counted)
2Ch DWORD frames with errors (FFFFFFFFh = not counted)
30h DWORD overly large frames (FFFFFFFFh = not counted)
34h DWORD frames less than minimum size (FFFFFFFFh = not counted)
38h DWORD multicast bytes received (FFFFFFFFh = not counted)
3Ch DWORD broadcast bytes received (FFFFFFFFh = not counted)
40h DWORD frames discarded--hardware error (FFFFFFFFh = not counted)
44h DWORD total frames transmitted (FFFFFFFFh = not counted)
48h DWORD total bytes transmitted (FFFFFFFFh = not counted)
4Ch DWORD multicast frames transmitted (FFFFFFFFh = not counted)
50h DWORD broadcast frames transmitted (FFFFFFFFh = not counted)
54h DWORD broadcast bytes transmitted (FFFFFFFFh = not counted)
58h DWORD multicast bytes transmitted (FFFFFFFFh = not counted)
5Ch DWORD frames not transmitted--timeout (FFFFFFFFh = not counted)
60h DWORD frames not transmitted--hardware error (FFFFFFFFh = not countd)
64h N BYTEs vendor-specific info
Bitfields for MAC status bits:
bits 0-2 operational status
000 hardware not installed
001 hardware failed startup diagnostics
010 hardware configuration problem
011 hardware fault
100 operating marginally due to soft faults
101 reserved
110 reserved
111 hardware fully operational
bit 3 MAC bound
bit 4 MAC open
bit 5 diagnostics in progress
bits 6-31 reserved
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson